home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
COMMUNIC
/
2565.ZIP
/
MODEMD22.ZIP
/
MODEMD22.DOC
< prev
next >
Wrap
Text File
|
1989-12-06
|
57KB
|
1,278 lines
___________________________________________________
T H E
M O D E M
D O C T O R
Shareware Version 2.1S
Hank Volpe (c) 1989
108 Broadmoor Dr
Tonawanda NY 14150
___________________________________________________
Section 1. Introduction -
-------------------------
The Modem Doctor is a professional diagnostic tool designed to work with IBM-
PC's and compatibles. There are two versions of the Modem Doctor, the
Shareware Version and the Registered Version.
The Registered Version of the Modem Doctor contains complete diagnostics for
8250 and compatible UARTS, RS-232 data lines, and Carrier tests. Some of the
many diagnostic features of the Registered Version are ;
** Support for COM 1 through COM 4
** Baud Rates from 300 to 19200 bps
** Support for Courier HST/Dual Standard/V.32 Modems [+]
** Auto log-in of COMM Ports to DOS for use by other programs
** Manual log-in of COMM ports for Non-Standard Hardware
** On-screen Display of all 8250 and Compatible UART registers
** On-screen Display of Modem S-Registers
** Full Diagnostic tests of UART and RS-232 Channels including;
-- ALL UART REGISTERS
-- ALL RS-232 Handshaking Signals
-- 8259 Interrupt Controller Mask Registers
-- Digital Loopback UART Tests
-- Analog Loopback Data Tests
** Full Diagnostic Checks of "AT" Instruction Set Modems
-- Carrier Tests on both Originate and Answer Frequencies
-- Carrier Test interface for "Dumb" Modems or Data Channels
-- Modem Microprocessor Command Channel Diagnostics
-- Support for High Speed Modems
** Interactive Mode with 4K Communications Buffer for;
-- TTY mode Interactive Communications over Serial
Port or Modem while on-line
-- Custom Designed Tests...Help Menu Included
-- On-Line "Hot-key" Viewing of 8250 UART Registers
The Shareware Version of the Modem Doctor is designed for people who would
like to try a piece of software before buying it. This "Look-see" version has
some limits over the Registered Version, however it is does provide the
following full-functioned Diagnostics;
** Support for COM 1 and COM 2
** Baud Rates from 300 to 2400 bps
** Auto log-in of COMM Ports 1 and 2
** On-screen Display of all 8250 and Compatible UART registers
** On-screen Display of Modem S-Registers
** Diagnostic tests of UART and RS-232 Channels including;
-- ALL UART REGISTERS
-- ALL RS-232 Handshaking Signals
-- 8259 Interrupt Controller Mask Registers
** Full Diagnostic Checks of "AT" Instruction Set Modems
-- Carrier Tests on both Originate and Answer Frequencies
-- Carrier Test interface for "Dumb" Modems or Data Channels
-- Modem Microprocessor Command Channel Diagnostics
** Interactive Mode with 4K Communications Buffer for;
-- TTY mode Interactive Communications over Serial
Port or Modem while on-line
-- Custom Designed Tests...Help Menu Included
-- On-Line "Hot-key" Viewing of 8250 UART Registers
The Modem Doctor is copyrighted by Hank Volpe. The Shareware Version of this
program may be distributed on Bulletin Board Systems or in Public Domain
Libraries as long as a Fee is not charged for its duplication or acquisition.
Under no conditions can anyone accept payment for the Modem Doctor but Hank
Volpe or agents authorized for resale by Hank Volpe.
The Modem Doctor is distributed on as "As-is" basis, with no warranties for
usefulness or suitability expressed or implied. Users of the Shareware
version are granted a limited license to use this program. It is expected
that if you use it for more than 30 days, that you will register the Modem
Doctor.
Registration adds many powerful features that make the Modem Doctor an
excellent RS-232/UART/Modem Diagnostic Tool. Comparable programs cost well
over $100, while the Modem Doctor Registration Fee is just $19.95 for a
single copy.
Group Discount prices for software distributors and Businesses are available.
For Single-user registration, send a check or Money order for $19.95 to
Hank Volpe
108 Broadmoor Drive
Tonawanda NY 14150
You will receive the latest version of the Modem Doctor, plus several other
useful Modem Utilities. Registered Users also are entitled for updates to
newer versions (when available) for a small fee to cover shipping and
handling.
Section 2. Starting MDR
------------------------
The Modem Doctor has been designed to work with PC-Type Serial Ports and "AT"
Instruction Set (so called Hayes Compatible[++]) Modems. The Modem Doctor
requires at least 1 Serial Port to Operate.
MDR is written to run under MS or PC DOS 2.2 or higher, requires a
MDA or CGA adaptor and at least 80K of program memory. When MDR is
started, it will use the last mode that the display adaptor was in
(unless it was in EGA or VGA mode or a graphics mode). MDA and CGA are
the two execution modes regardless of what kind of adaptor is in use.
Code has been included to work with hardware-incompatible display
adaptors as long as they are at least IBM-PC Bios compatible. This is
operator selectable at runtime.
To start MDR, type MDR from the dos prompt. If you wish to use the
Bios compatible mode instead of direct display writes, start the
program using the Bios switch ; MDR /B
Section 3. First Time Setup
------------------------------
MDR checks to see what hardware is available and reports its results
to you. Displayed on the bottom line is the serial number unique to
each copy (Registered Version..Shareware Version says "Shareware").
Press any key to continue.
╔[ Ports ]══╗
║ Use COMM 1 ║
║ Use COMM 2 ║
║ Use COMM 3 ║ * Registered Version Only
║ Use COMM 4 ║ * Registered Version Only
║ ║
╚═════════════╝
Next, you are instructed to pick from a list of valid comm ports. The
only ports that are listed are valid ports that MDR found when it
first started. The Registered Version allows you to add ports that are not
"standard" ports, (check the section on Login). Use the arrow keys to find
your selection, and then press return to select.
╔[ Baud ]═╗
║ 300 BPS ║
║ 1200 BPS ║
║ 2400 BPS ║
║ 4800 BPS ║ * Registered Version Only
║ 9600 BPS ║ * Registered Version Only
║ 19200 BPS ║ * Registered Version Only
╚═══════════╝
A window now opens showing you valid comm port speeds. Select a speed
from this menu. Please note, don't select a speed faster than your
modem can handle. The reason for faster speeds is so communication
links can also be tested. Use the arrow keys and press return to make
your selection.
╒[ Select an Option ]══════════════╕
│ Test Modem / Port 1 to 300 BPS │
│ Test the UART Hardware Only │
│ Dont set up modem, return to Menu │
└────────────────────────────────────┘
At this point you are in the options menu. If you select Test Modem, a
series of commands and tests will be performed to make sure the modem
is on line and running. If you select Test UART Hardware, only the
8250 UART will be tested. The modem will not be setup. This selection
is useful only if you wish to test an RS-232 line or a "dumb" modem.
Selection 3 aborts to the main menu
A. Test Modem/ UART
---------------------
Preliminary Diagnostic Checks of Hardware
-----------------------------------------
Testing Modem Microprocessor
----------------------------
Modem Microprocessor Command Bus Active
Modem reports a 9600 bps Modem installed
Modem Microprocessor Accepts Setup Commands
Modem Microprocessor ON-LINE
Modem - UART Status appears correct
Press any key to continue
Above is displayed then normal test results with a modem. First step
tests the UART to Modem hardware. If any connection errors are
discovered, they are reported to the screen. Next the modem command
bus is tested and if its compatible, the modem ID information is
queried from the Modem Processor. Finally, the modem is setup for
diagnostics. Note: These setup strings do not overwrite any non-
volatile storage. If all is ok, all the UART registers and the First
16 Modem S registers are displayed. This display is not shown the next
time you log in a comm port unless you press the space bar
If the modem does not respond to certain parts of the tests, error
messages are reported.
Testing Modem Microprocessor
----------------------------
Modem Microprocessor Command Mode Not Detected
Software Reset Initiated
This message is displayed if the modem did not respond the first time
for a query to its status. This could happen for any number of
reasons, including that the modem was still on-line and not in the
command mode. A soft-reset is performed, which essentially tries to
wake the processor up.
No Response...resetting Modem Microprocessor ...attempt #1
No Response...resetting Modem Microprocessor ...attempt #2
No Response...resetting Modem Microprocessor ...attempt #3
After 3 soft-resets, the Modem Doctor assumes that the modem is jammed
and needs a hardware reset. A hardware reset is the program equivalent
of turning the modem on and off again. This is the only way to reset
some internal modems that get "jammed" when the computer is first
turned on. Clearing a "jam" usually takes no more than 2 attempts.
Trying a Hardware reset of the Modem Microprocessor
The Hardware reset is performed, and again the modem microprocessor is
strobed for its status.
Software Reset Initiated
After a hardware reset, a soft reset is performed again, attempting to
wake the processor up. If this fails, the following message is
displayed;
Modem Microprocessor Did Not Accept Setup Commands
Trying a Hardware reset of the Modem Microprocessor
After one more attempt at waking the modem up, the Modem Doctor
assumes that the modem is not compatible and based on the status
given it by the UART, it will report if the device is off or not
connected.
WARNING...This unit does not have a Compatible Modem attached
WARNING...The Modem Device appears to be off or not connected
The registers are now displayed for diagnostic tests, and a conclusion
based on the status of the registers is displayed. There are many
reasons why the modem/UART could fail. See the error code section for
details.
If the UART is fine, but the modem is not compatible, the program will
tell you that the UART hardware tests ok and display this in a window
to the right of the register display.
B. UART Tests
---------------
The UART test is performed every time either the Modem or the UART test
is selected. Essentially, the UART test programs all of the registers
of the UART and looks to see that the correct values have been placed
in them. After that, it looks to see that an RS-232 loop is active. If
not, it displays an error message saying that the loop is either
disconnected or a register in the UART is defective.
Each register is checked for proper values...if anyone of them fail, a
window will open and display a possible cause for the problem.
Preliminary Diagnostic Checks of Hardware
-----------------------------------------
Testing UART Hardware Only
--------------------------
Modem - UART Status appears correct
The first time through these tests, the registers will display for
diagnostics. Unlike the modem tests, only the UART registers are
displayed.
C. Return to main menu
----------------------
Selecting this returns you to the main menu, this allows you to change
an entry made in error without having to wait for the diagnostic
checks to fail.
In any event, after any of these tests have been run, you will then
enter the Modem Doctor's Main Menu.
Section 4. The Main Menu
----------------------------
┌───────────────────────── The Modem Doctor ────────────────────────────┐
│Log-in Regs Carrier Loopback Manual Setup End Program │
└───────────────────────────────────────────────────────────────────────┘
All of the above selections are toggled using the arrow keys and
selected using the return key. Pressing the down arrow displays a
brief message about what each function does.
Log-in COMM Ports
------------------
The ROM-BIOS only looks for COMM ports 1 and 2. Use this
section to manually log-in a COMM port that cannot be
detected by DOS. Entries are also good after you quit
(NOTE..This feature in Registered Version Only!)
UART Register Diagnostics
-------------------------
This test section can be used to check the contents
of an 8250 UART and the 8259 Interrupt Controller mask
register. White = Active, Gray = Not Active
Carrier Mode Tests
------------------
This tests runs a Smartmodem in an test of the Carrier
Originate and Answer frequencies. A Smartmodem or a modem
with Manual Carrier selection is required
Loopback/ UART Tests
------------------
This test is designed to check out a RS-232 COMM port
for proper operation. No Modem is required for this test
however this test is not for an Internal Modem, although
it can be run as a test of the command channel.
(NOTE..This feature in Registered Version Only!)
Manual Interactive Tests
-------------------------
This test is designed to check out the command channels
and user interface to a Smartmodem. You can also use it
with an RS-232 loop or to send your own commands.
Setup Diagnostics
-------------------------
Use this test section to return to the setup mode to
change a Port assignment or a Baud Rate to a new value.
Only Logged-in Comm ports can be accessed.
Exit Program
-------------
Quit the program, all vectors and interrupt tables
are restored.
4.1 Login In Comm ports
-----------------------
(NOTE..This feature in Registered Version Only!)
When you select this menu, you are offered these choices
╔[ Comm Port Login ]═══════════╗
║ Let me Auto Detect COMM Ports ║
║ You Manually Enter COMM Ports ║
║ Return To Main Menu ║
╚════════════════════════════════╝
Option 1 repeats what the Modem Doctor does when you first begin to
run the program.
Option 2 allows you to enter a "non" standard Port address and assign
one of the two Interrupt lines to use with the UART.
Option 3 returns to the main menu.
Port addresses for PC's are standardized in order for Communication
programs to properly work. The industry standards are
COMM 1 3F8 COMM 2 2F8 COMM 3 3E8 COMM 4 2E8
IRQ4 IRQ3 IRQ4 IRQ3
The Port addresses for Serial Ports is held in a reserved area of PC
Memory. The "base port" of each of these UARTS is saved in a distinct
area. When you first start the Modem Doctor, the program checks these
locations to see if there are any Comm ports already logged in by Dos.
If not, a search is conducted for the PC's default Comm 1 and Comm 2
port values and these are logged in. Next, a search is performed for
the other industry standard comm ports. Some PC's already log these
in, however IBM-PC's and those that mimic exactly their ROM-BIOS
routines do not log in a COMM 3 or a COMM 4. The Modem doctor will,
and as a side benefit, these stay logged in until the next warm or
cold boot is performed on your computer. Why would dos not log in a
port? Well, some multi-tasking programs overwrite this area to prevent
"swapping" of communication programs and it is possible that they
might not be properly restored on exit.
Option 2 is the only real option available. Please use it with
caution. The only real need for this option is for logging in a COMM
port that does not use any of the listed industry standards as its
base port address.
Consult your Serial Port or Modem's user manual to make sure you enter
the exact Port address and select the correct Interrupt line to use
with it. Otherwise the Modem Doctor will not recognize or be able to
test any device hooked to this port.
Protection is included in this routine to keep someone from
accidentally entering a port that is used by the system board, display
adaptors, or fixed disk adaptor. Entering any of these values, or an
error, will result in the display;
"WARNING...RESERVED PORT...RETRY ENTRY"
After running Option 1 or 2 , you must tell the Modem Doctor which
COMM port you wish to use so that testing can begin
4.2 Regs
-------------
The register display section can be an invaluable diagnostic tool.
What this does is "poll" all of the status registers of the UART, and
the Interrupt Controller to tell you exactly what is going on. When
you use the setup mode, the Modem Doctor checks all of these registers
for correct information. If something wrong is discovered, a warning
is displayed on the screen telling you what the Modem Doctor believes
is wrong. Many different error conditions are checked, see the error
code section for a listing. Each register contains a Mnemonic for each
one of the data bits. Bits that are a logic low ( = 0) are displayed
in low intensity, those that are a logic high (= 1) are displayed in
high intensity. On a color monitor, this is easy to see. On a Mono
Monitor, make sure you have the brightness and contrast controls
properly adjusted to see the difference between the two status
conditions.
╒[ Line Control Register ]══════════╕
│ DLB STB STP EPS PEN STB WS1 WS0 │
└───────────────────────────────────┘
This register controls many of the setup characteristics of your UART
and how it behaves to your PC. This register is responsible for
setting baud rate, setting break code transmission, parity, and the
length of the serial stream word. When you enter the setup mode,
DLB Divisor Latch Used to access the baud rate registers
Should be 0 for the Modem Doctor
STB Set Break If High, the modem transmits a break
signal, should be 0 normally.
STP Stick Parity Should be 0 normally
EPS Even Parity select High = Even Parity..should be 0 normally
PEN Parity Enable Enable Parity checks, should be 0 normally
STB Stop Bits Number of stop Bits, should be 0 normally
to Indicate 1 stop bit character only.
WS1 Word Length Select 1
WS0 Word Length Select 0 These two bits are used to determine the
Serial data word length. Both should be
High normally to indicate a length of
8 bits.
╒[ Line Status Register ]═══════════╕
│ TSE THE BI FE PE OE DR │
└───────────────────────────────────┘
The line status register reports error conditions that might have
occurred between the PC and the UART.
TSE TX Shift Register A High indicates that all characters
Empty sent to the UART were transmitted.
Should be High Normally.
THE TX Holding Register A High indicates that the UART can now
Empty accept a new character from the PC.
Should be High Normally.
BI Break Interrupt A High indicates that a break signal
was received. Should be Low Normally
FE Framing Error A High indicates that a serial data
train did not have a proper stop bit.
Should be Low Normally.
PE Parity Error A High indicates that the received
serial data's parity did not match
what the UART was programmed to receive.
This should be Low Normally.
OE Overrun Error A High indicates that a character in
the receive buffer was not read by the
PC in time, and another character
overwrote and destroyed it. Should be
Low Normally.
DR Data Ready A High indicates that a character has
been received and is ready to be read by
the PC from the Receiver Buffer. Should
be Low normally for these test, but can
vary while data is coming in from the
Modem.
╒[ Modem Control Register ]═════════╕
│ LP OT2 OT1 RTS DTR │
└───────────────────────────────────┘
The Modem Control register handles all of the interfacing between the
UART and the modem. Only 5 signals are needed to handle this
LP LOOP A High indicates that the Loopback
digital diagnostic has been activated.
This feature only works with 8250 UARTS
or those that are 100% Compatible. This
is used in the Digital Loopback test.
OT2 OUT 2 A High enables the UART to generate
interrupts. A Low disables interrupts
This should always be high for testing
purposes.
OT1 OUT 1 On 100% compatible modems, a High on
this pin will perform a Hardware reset
of the modem. Normally this is a Low.
RTS Request to Send A Handshaking signal that is used by
some modems to enable data transfer
between the Modem and the UART. Should
be High for testing purposes.
DTR Data Terminal Ready A Handshaking signal that is used by
some modems to enable data transfer
between the Modem and the UART. Should
be High for testing purposes.
╒[ Modem Status Register ]══════════╕
│ RLS RI DSR CTS DRD TER DDR DCS │
└───────────────────────────────────┘
The Modem Status Register returns the status of the control signals
sent by the modem to the UART.
RLS Received Line Detect A High indicates that a carrier has
been received by the modem. When the
Analog tests are run, this should be
High. If it is not, it is still possible
that the Modem is ok, however the
cable from the Modem to the UART (for
externals only) might not have a complete
circuit due to faulty wiring of the
RS-232 cable. This signal is very
important for some communications
programs to operate properly.
RI Ring Indicator A High indicates that the modem detected
a Ringing signal on the phone line.
DSR Data Set Ready This is part of the DTR/DSR Handshaking
pair that is used by some modems to
control the flow of data. Should
normally be a High.
CTS Clear to Send This is part of the RTS/CTS Handshaking
pair that is used by some modems to
control the flow of data. Should
normally be a High.
DRD Delta Received
Line Signal Detect A High indicates that the Received Line
Signal has changed state. Some
Communications programs use this also as
an indication that a Carrier was
detected by the modem.
TER Trailing Edge
Indicator A High indicates that the Ring Indicator
changed state. Some Communications
programs use this as an indication that
the phone as Rung.
DDR Delta Data Set Ready Indicates that the DSR signal has changed
state.
DCS Delta Clear to Send Indicates that the CTS signal has
changed state.
╒[ Interrupt ID Register ]══════════╕
│ ID2 ID1 ITP │
└───────────────────────────────────┘
The Interrupt ID Register is used to tell the CPU what kind of
interrupt occurred.
ID2 Interrupt Bit 2
ID1 Interrupt Bit 1 These two signals are a binary code
which can be read by the CPU to tell
what kind of interrupt occurred. Both
Bits high indicates an error occurred or
a Break Interrupt was received.
Bit 2 high and Bit 1 low indicates that
data is ready to be read by the CPU.
Bit 1 High and Bit 2 low indicates that
a Ring signal or Carrier signal was
received.
For testing purposes, only the Data
ready mode is used.
ITP Interrupt Pending A Low indicates that an interrupt has
occurred. For testing purposes, this
should always be high if data was
successfully read by the Modem Doctor.
If it is not, then an interrupt did
occur but the CPU did not respond.
Suspect a problem with an interrupt
Controller Chip or the UART interrupt
generating capability.
╒[ Interrupt Enable Register ]══════╕
│ ESI ELI ETI ERI │
└───────────────────────────────────┘
The Interrupt Enable register is programmed to allow certain types of
interrupts to occur.
ESI Enable Status A High causes the UART to generate an
Interrupt interrupt whenever RI or RSD signals in
the Modem Status register go high.
Should be low for testing.
ELI Enable Line A High causes the UART to generate an
Interrupt interrupt whenever an error or break
interrupt is detected in the Line
Status Register. Should be low for
testing.
ETI Enable Transmitter A High causes the UART to generate an
Holding Register interrupt whenever the THE signal of the
Empty Interrupt Line Status register goes High. Should
be low for testing.
ERI Enable Receive Data A High causes the UART to generate an
Ready Interrupt interrupt whenever Data is ready to
be read by the CPU. The DR line of the
Line Status register going to a high
condition generates this condition. This
signal should be High for testing
purposes, since it is the only interrupt
needed by the Modem Doctor.
╒[ Interrupt Mask Register ]════════╕
│ IQ7 IQ6 IQ5 IQ4 IQ3 IQ2 IQ1 IQ0 │
└───────────────────────────────────┘
The Interrupt Mask Register is contained on the 8259 Priority
Interrupt Controller on your Computer's Motherboard. Each one of these
Hardware Interrupts corresponds to an external device.
IQ7 Printer Interrupt
IQ6 Floppy Disk Interrupt
IQ5 Hard Drive interrupt
IQ4 COM1 Interrupt (also COM3)
IQ3 COM2 Interrupt (also COM4)
IQ2 reserved by IBM (Gateway to second 8259 on AT's)
IQ1 Keyboard Interrupt
IQ0 Timer Interrupt
Under Normal Conditions, IQ0,IQ1 and IQ6 should be lit, along with
IQ4 if testing COM1 (or COM3) or IQ3 if testing COM2 (or COM4). In
addition, other lines could be lit depending on your computer. The only
line the Modem Doctor looks for is the IQ4 or IQ3 lines (depending on
which Serial Port you are testing).
4.3 Carrier Tests
-----------------
The Carrier tests are designed to test your modem under actual use
conditions (minus a telephone line). There are two versions of this
test, one of which is automatically selected by the Modem Doctor
depending on the hardware it detects.
Smart Modem Test - If you selected the Test Modem/UART option from the
setup menu and a Modem with a compatible Microprocessor was detected,
the Modem Doctor will test the Originate and Answer frequencies of
your modem automatically. Before running this test, make sure you have
disconnected the modem from the telephone line, because the modem will
go off-hook and sometimes the dial-tone will interfere with testing.
You will be prompted to enter a "Loop Count". If you select a count of
1, you will be able to hear the connecting tones on your speaker. If
you select a count greater than 1, then the speaker is turned off.
After you make your selection, two windows will open on your screen.
One contains data that is being sent to the modem, the other Data that
has been received by the modem. All of the characters from Binary 0 to
Binary 255 are transmitted. Some of these will look strange because
they are characters of the Extended Character set. The Modem Doctor
takes a great deal of care in preserving the normal condition of your
modem before testing, and sends all the character strings necessary to
test without disturbing any non-volatile memory settings. If you have
an external modem, you will see the data being sent and acknowledged
before testing begins. If you have an internal, please be patient
while it sets up.
UART or Dumb Modem - This test works the same as the Smart Modem tests
with two main exceptions. First, Your modem must be able to generate a
carrier on its own on the answer and originate frequencies. Most
external "dumb" modems have front panel switches for this function.
Most are marked as AL (for Analog Loopback). If your modem can
generate this, answer yes and follow the prompts on the screen. All
testing is performed as above, except you setup the modem instead of
the Modem Doctor.
Errors - If A RLS (Received Line Detect) signal is not received before
testing begins, this indicates that either A Carrier is not being
generated (or properly received in self test) by the modem, or an RS-
232 Cable to an external modem is improperly wired. Although RS-232
loops will work fine without an RLS signal being wired, there is no
way for the modem Doctor to detect on a Dumb Modem if a carrier was
generated. On a Smart Modem, the Modem Doctor alternately looks for
the word "CONNECT" to be sent from the modem if there is no RLS signal
available. If you wish your all of your communications programs to
work properly, you should get a cable with this signal wired.
If an Error is detected during the Analog test, the error Counter is
incremented. There are two error counters; One is used for the
Originate Mode, and the other for the Answer Mode. If you receive an
error, it could be due to a problem with a UART or a Modem at a
certain Baud Rate. Try testing at other Baud rates to determine if the
errors repeat. Also Errors could occur on only the Originate or only
the Answer frequency. This is more prevalent at higher baud rates.
Finally, make sure that the modem was disconnected from the Phone line
before testing. The Dial-tone interferes with some modems. Finally,
there could be a problem with a cable or interrupts not properly being
generated or properly handled by the CPU. Run the Digital/Loopback
tests and if the problem repeats, you might have a bad UART or
motherboard problem.
4.4 Loopback Tests
-------------------
(NOTE..This feature in Registered Version Only!)
The Loopback tests were designed for two purposes. First, to test an
RS-232 loop including cables that are properly terminated with a
loopback plug, and second, to run a digital loopback test on 8250 and
100% Compatible UARTS.
Selecting Loopback and pressing return fetches this menu
╔[ Loopback Tests ]═══════════╗
║ Analog Loopback using a PLUG ║
║ Digital Loopback 8250 UARTS ║
║ Loopback Plug Technical Data ║
║ Return To Main Menu ║
╚═══════════════════════════════╝
Analog Loopback tests require that you attach a Loopback plug either
to the back of the Comm port connector on your computer, or at the end
of a RS-232 Cable. This test is designed for external Modems, however
you could run this on an internal modem as a test of the command
channel's ability to receive characters. Caution should be used on
internal modems, for some will fail this test. If this happens, don't
be concerned. However this test should NEVER fail with a Loopback
Plug.
Digital Loopback tests require that you have an 8250 or 100%
compatible UART in your system. These UART's have built-in diagnostics.
If this test does not run, it means that you do not have a compatible
UART installed. Some UARTS that are not 8250's have a problem entering this
mode properly. If the test does not start, do not be alarmed, because only
8250 and true compatibles will pass this test. However this test will NEVER
start and then fail unless you do have a hardware problem. You should never
pick up a character error using this test. If you do, you have a bad UART or
CPU Motherboard Problem.
Both Tests open up windows (like the Analog test) and send and receive
characters to the UART.
If you wish to know how to build a loopback plug, select the Loopback
Plug technical data section.
4.5 Manual
----------
As well written as the Modem Doctor is, there exists the possibility
that a Modem or a system might not be compatible with the diagnostics.
The Manual section allows you to send your own string commands to the
Modem, read back data, and in fact you could use this as a Mini-
communications program.
If you select this mode, a window opens with the banner Interactive
Mode. At the Bottom are listed the "Hot-Keys" you can use;
ALT-C Clears the screen. This only clears the window of data, and
leaves all your prompts.
ALT-R This displays the UART registers...handy for real-time
troubleshooting of RS-232 loops.
ALT-H Help..this displays the basic AT Command set instructions that
you could use to control your modem. Note that this is only a
basic set. Some modems have many extensions to this, so for
advanced work, consult your owners manual.
ALT-X Exits the interactive mode and returns to the main menu.
4.5 Setup Mode
--------------
This section was covered above. Use this to change the serial port
under test, the baud rate, and the type of test to be run.
4.6 Exit Program
----------------
This is the only way to exit the Modem Doctor. This is necessary
because the interrupt tables and controllers of your PC must be
returned to their original state in order to avoid problems after you
use the Modem Doctor. Pressing Control-C or Control-Break during the
Modem doctor will cause one of two things to happen. First, it will
freeze the program deliberately (locking it up) forcing you to
warmboot your computer. Second, if it is at all possible to exit
without damage, a window will open telling you that you can control-
break abort if you wish..answer yes or no.
5.0 Error Messages and their Meanings
-------------------------------------
The Modem Doctor, if presented with an error, will make a diagnosis of
the problem. In most cases, this should be enough for you to figure
out what is wrong and go on from there to correct it.
5.1 Log In errors
-----------------
ALL Available COMM ports are in use...Press to Return
-COM1 through COM4 are logged in and no new ports can be adtwm mCOMx Not Found
-A COMM port (x) was not located at the port address specified.
This is normal during auto-selection, but not if a manual selection
was entered. If a manually entered adtress did not work, check your
Modem owners manual to make sure you entered it correctly.
WARNING...RESERVED PORT...RETRY ENTRY
- You entered a port adtress that is assigned to a critical
Motherboard or CPU adtress port. Your entry was an error..check
your modem owners manual to get the right port.
5.2 Carrier Errors
------------------
WARNING...CARRIER FAILURE...Status Registers Displayed above
followed by;
RLS (Received Line Signal Detect indicates that a carrier has
not been received by the UART Check modem or connector wiring
This indicates that a "dumb" modem did not signal the UART that it has
received a carrier (or is generating one).
Modem not responding to the Analog originate test
or;
Modem not responding to the Analog Answer test
A Smart Modem did not go into the self test mode. The Modem Doctor
looks for the word "CONNECT" to be returned by the modem. A possible
reason for a perfectly working modem to generate this is if the wrong
baud rate was selected for testing. Smart Modems return
identifications that can be read by the Modem Doctor. If you suspect
you selected the incorrect baud rate, go to setup and select 300 baud
and try again. If it doesn't work this time, you might have a problem
with your modem generating a self test.
Modem Transmit Error
- The Modem Doctor attempted to send a character to the Modem, but
the status of the Transmit Holding Register indicated that the character
was never sent. This will abort a test. Check cable wiring and that
somehow the modem did not get disconnected from the Serial port or
inadvertantly turned off.
Modem Queue Failure
- A character was sent to the modem, but nothing, not even the wrong
character was sent back to the Computer from the Modem. This test is driven
by interrupts, however if they fail to happen, a brute-force method is
tried one time and if that still fails to get a character, then this
error message is displayed. Check cable wiring and again make sure that
somehow the modem did not get disconnected from the Serial port or
inadvertantly turned off.
CARRIER NOT DETECTED
- Some Modems in the self-test mode do not raise a carrier (RLS) or send the
word CONNECT. Instead, the MB (Modem Busy) light blinks on the Modem. One
case of this is the USR Courier Dual Standard Modem. In this case, the
self test continues, but the words CARRIER NOT DETECED are displayed in
the message window instead of CARRIER ON
Modem Analog Test passed without any errors in Originate and Answer
Modes
- Normal results of the testing.
"You had a total of x Originate Errors and x Answer Errors
- An error was detected on character transmission by the Modem
Doctor. Use the window display to isolate the error if you wish,
or run the test again, making sure that the phone line is
disconnected.
5.3 Loopback Errors
-------------------
UART not responding using Analog Loopback Plug mode
- No characters were received over the RS-232 Loop. Make sure you
are using a proper RS-232 cable and a proper Loopback plug
No Loopback Plug or General Failure of the Hardware
- None of the handshaking signals (RTS/CTS DTR/DSR) were detected
(or generated) by the UART. Either you have a bad cable, a bad
loopback plug or a faulty UART.
Loopback Transmit Error
- The Modem Doctor attempted to send a character to the UART, but
the status of the Transmit Holding Register indicated that the character
was never sent. This will abort a test. If you are performing the
Analog Loopback test, check cable wiring and that somehow the modem did
not get disconnected from the Serial port or inadvertantly turned off.
If you are running a digital loopback test, then this indicates that
the UART is failing to send characters. If you have an 8250 or compatible
UART, then this would indicate a problem. If your UART is more or less
compatible, then this message might get displayed
Loopback Queue Failure
- A character was sent to the modem, but nothing, not even the wrong
character was sent back to the Computer from the Looping source. This test
is driven by interrupts, however if they fail to happen, a brute-force
method is tried one time and if that still fails to get a character, then
this error message is displayed. If you are performing the Analog Loopback
test, check cable wiring and again make sure that somehow the Loopback
source (Plug or Modem) did not get disconnected from the Serial port or
inadvertantly turned off.
If you are running a digital loopback test, then this indicates that
the UART is failing to loop characters. If you have an 8250 or compatible
UART, then this would indicate a problem. If your UART is more or less
compatible, then this message might get displayed
Analog Loopback Test passed without any errors
- Normal result of test
You had a total of x Errors
- At least one error was detected...this is the normal result if a
UART does not respond to any test.
UART not responding to the Digital Loopback test
- No characters were looped internally through the 8250 UART. Suspect
a non-compatible UART or a failure of the 8250 UART.
UART Registers did not set for Loop back test
- The UART Modem Control Registers did not program properly. This
should indicate a hardware failure of the UART under all
circumstances (including use with a non-compatible UART).
UART Digital Test passed without any errors
- Normal result of test
5.4 Setup Errors
----------------
Modem Microprocessor Did Not Accept Setup Commands
- Commands were sent to setup the modem for testing, the Modem did
not acknowledge. Suspect a non-compatible modem or a possible
hardware failure.
Modem Status Register readings show that there is no status coming
back from the modem to the UART. If this is an external modem,
check" that the cable is plugged in.
- The only condition that the UART will not have any status
is if an External Modem is off, not connected, or the UART
has a serious hardware problem.
Line Control register readings show that the word length selected is
incorrect. WS1 and WS0 should both be on indicating that 8 bit words
are to be used. The UART is defective or communications to the UART
are suspect.
Line Status Readings Show
show that the Tx Holding Register THE or the Tx Shift Register TSE is
not resetting properly. UART is suspect or connections to the UART
from the computer.
Modem Control register readings show that either DTR,RTS or OT2
signals are not set properly. DTR and RTS are essential for
communications. OT2 is essential for interrupts. UART is suspect or
connections to the UART from the computer
Interrupt ID register readings show that an interrupt is pending when
none should be. UART is suspect or connections to the UART from the
computer.
Interrupt Enable register readings show that ERI Enable Receiver ints
is not set properly. UART is suspect or connections to the UART from
the computer.
8259 Interrupt Controller has not responded to setting the IRQ4 line.
This problem is on the system board of your computer. Run your
computer diagnostics program to locate the error
8259 Interrupt Controller has not responded to setting the IRQ3 line.
This problem is on the system board of your computer. Run your
computer diagnostics program to locate the error
I cant find a COMM Port
- If Dos does not Log in Comm 1 or Comm 2 and if no port is
Auto-Detected, then the Modem Doctor Aborts for there is no
reason to run the program.
WARNING...This COMM PORT is MODEM STATUS REGISTER IS DEFECTIVE
- The Modem status register is one of the registers tested during
auto-login detection. If it doesn't respond properly, the UART
is probably defective and this message is displayed.
Section 6. Special Modes and Information
----------------------------------------m mCurrently, the only High-Speed Modem supported is the USR Courier HST and
Dual Standard /V.32 Modems. The Modem Doctor recognizes these modems upon
initial testing and sets up its test parameters a certain way to compensate
for their Carrier self test limitations.
Because of the trellis-encoded Async/modulation of the USR HST Mode, the
maximum Carrier test Baud rate is 2400 bps (see the USR Manual for this
info). To work around this, the Modem Doctor Programs these modems to use a
fixed DTE/DCE Rate with the &B1 Parameter, allowing communications to and
from the modem at speeds up to 19200 bps. When working in the V.32 mode
however, the Carrier test (and all loopback tests ) can be performed at 9600
since the modulation is symmetrical again. Also when the selected baud rate
is higher than 2400 bps, the MNP Protocol switch is set to &M0, otherwise if
there was an error, the Modem would try to correct it instead of passing the
error on to the Modem Doctor. None of these changes is saved to the non-
volatile ROM, so you should not experience a problem. However, the V.32 and
Dual Standard Modems might experience a problem if register S13 is not set to
1. This is the default from the factory and insures that the modem will be
reset when the DTR line is dropped. If you are experiencing a problem, use
the interactive mode and type S13=001. This change is not permanent.
If you are using a USR Dual Standard Modem, then the Modem Doctor will test
whatever mode is active via the B switch. If the current Modem setting is
B0, then the V.32 mode will be tested, if B1 is set, then the HST mode will
be tested. You can change this setting to whatever you wish by using the
Interactive mode, type ATZ, then type ATB0 &W or ATB1 &W. This has to be
written to the firmware in order to stay valid throughout all the testing,
but the ATZ command before a save will always recall your settings, insuring
you have only changed the one parameter. Please note, this is included for
advanced users and is one of the reasons for the interactive mode. It is not
necessary for you to do this to test your modem unless you wish to.
For more information, see the next section regarding "Quirks".
The Modem Doctor will not send any special codes to a High-Speed Modem unless
the baud rate selected is over 2400 bps. There are so many different
manufacturers extended command sets that its possible the codes for the
Courier could interfere with codes for other brands of Modems. I hope to
eventually include tests for other 9600 bps and higher modems, but for now
only the USR Couriers are supported. The reason I mention this is that as
registered users, you might try this program out on other modems, and if they
are not USR Courier compatible, they might not properly test at speeds above
2400. I have tested several other brands, and as long as they are running
what is called the "Compatible" instruction set, the Modem Doctor should run
fine.
Finally, users of 8250 compatible UARTS that do not support the Digital
(Chip) Loopback will get an error. This should be of no concern. However if
the test runs for a while, then fails, it could indicate a problem with your
UART. This is explained in the pull-down window in the program.
The Modem Doctor has been tested on about 25 Modems from Major Manufacturers
and on a variety of Clones and Compatibles (plus the "Real Thing"). It is
possible that a certain combination of hardware still might give problems,
however if you are a registered user, I will find a way to make it work.
What tests cannot Do
--------------------
Although I tried to be extremely thorough in my tests, there are somethings
that tests just cannot do or pinpoint. If you are having problems with
excessive line-noise, you might have a bad connection between your modem and
your telephone wiring in the house. Another possibility, although remote, is
that your modem does not offer the correct input impedance to the telephone
line. This can cause poor connections. The problem is with the electronic
design of the modem, and again, it is more prevalent in inexpensive modems.
Also, tests cannot check that the communications program you are using is set
up correctly. At times, installing a communications package can be very
tiresome and challenging for a novice user.
Tests also cannot check the wiring in your serial Cable. The Modem Doctor
will tell you if a handshaking pair is missing, but it cant tell you why. It
could be because the UART is bad, but more than likely, your RS-232 Cable
doesn't carry all of the handshaking signals to or from the external modem or
serial device. This can be important if you are using a high-speed modem.
Most High-speed modems will drop the CTS line when their communication
buffers are full. Previous Modems ignored the RTS/CTS signals and instead
used the DTR/DCE pair. What this means is that if you buy a new modem, it
might not work with the older-cable (yet at the same time the older modem
will work..which might lead you to believe that you have a defective modem).
Quirks with Some Modems
-----------------------m mCarrier tests - Some Modems have two "AT" instruction sets, usually referred
to as Compatible and Enhanced. If your modem does not perform a carrier test
at speeds below 4800, then this is usually the case. Some modems provide a
dip-switch or a toggle switch to select either mode. Setting your modem to
the Standard Compatible Mode should get rid of your problems below 4800 bps.
At speeds above 4800 bps, the Modem Doctor is only compatible with USR V.32,
Dual Standards (V.32 and HST) and HST brand of modems. If you have one of
these modems and experience a problem below 4800 bps, the culprit is leaving
the MNP Protocol (&M4) selected instead of turning it off (&M0). You can
correct this by going to the Manual Mode, type ATZ, then AT &M0 &W. This
permanently writes the &M0 setting to the modem. If desired, you can at the
end of the test turn the &M4 switch back on the same way you turned it off.
Future versions of the Modem Doctor will include a configuration file, but
for now, I cannot write this setting to your Modem, because other Modems use
this &M0 switch to set Sync/Async applications. REMEMBER..this is only for
USR Modems below 4800 bps. Above 4800 bps (9600/19200) the Modem Doctor will
take care of this for you, since compatibility is not a problem with other
brands at these speeds.
Finally, if only one of the tests (Originate or Answer) runs and NO CARRIER
is displayed for the other, the problem lies with the Enhanced Command
settings of your modem. With the USR Modems, make sure again that you have
the &M4 switch set to &M0 for speeds below 4800 bps. Genuine Hayes 2400
Modems use &T1 through &T8 commands for their 2400 and also have other
special switches. Again for the sake of compatibility with the widest range
of modems at speeds below 4800, this cannot be corrected for in this version.
You can however use the Manual Mode and type AT &T1 to test your modem. In
fact, you can leave it in that setting, switch to the Analog Loopback test,
and perform your own custom carrier test.
Considering the vast numbers of "AT" compatible modems in the marketplace,
these two exceptions are minor and will not affect most users, and this
information is only included as a special help for those "tekkies" out there.
Section 7 Registration Information
-----------------------------------
The Modem Doctor is copyrighted by Hank Volpe. The Shareware Version of this
program may be distributed on Bulletin Board Systems or in Public Domain
Libraries as long as a Fee is not charged for its duplication or acquisition.
The Modem Doctor is distributed on as "As-is" basis, with no warranties for
usefulness or suitability expressed or implied. Users of the Shareware
version are granted a limited license to use this program. It is expected
that if you use it for more than 30 days, that you will register the Modem
Doctor.
Registration adts many powerful features that make the Modem Doctor an
excellent RS-232/UART/Modem Diagnostic Tool. Comparable programs cost well
over $100, while the Modem Doctor Registration Fee is just $19.95 for a
single copy.
Group Discount prices for software distributors and Businesses are available.
For Single-user registration, send a check or Money order for $19.95 to
Hank Volpe
108 Broadmoor Drive
Tonawanda NY 14150
You will receive the latest version of the Modem Doctor, plus several other
useful Modem Utilities. Registered Users also are entitled for updates to
newer versions (when available) for a small fee to cover shipping and
handling.
Notes -
[+] Copyrighted by US Robotics INC
[++] Copyrighted by Hayes Inc
References to Smartmodem Copyrighted by Hayes.
References to USR/HST/Dual Standard Copyrighted by US Robotics.
References to MNP refer to An error free protocol Copyrighted by
Microcom Inc.
Disclaimer -
It is not the intent of the Author to recommend any brand of modem
over another nor to infringe on the Copyrights of the Manufacturers
by mentioning their products. A modem fits a need, and whatever one
works for you is the one you should have. As time goes on, more
modems will be added to the list of "special enhanced " tests. The
modems mentioned are done so only because of the popularity they
enjoy and for no other reason.